Background Tasks এবং Background Modes iOS অ্যাপ্লিকেশনের এমন ফিচার, যা অ্যাপ্লিকেশনকে ব্যাকগ্রাউন্ডে চলমান রাখতে এবং নির্দিষ্ট কাজ সম্পন্ন করতে সহায়তা করে, এমনকি যখন অ্যাপটি সক্রিয়ভাবে ব্যবহৃত হয় না। iOS অ্যাপ্লিকেশনে অ্যাপ স্লিপ বা ব্যাকগ্রাউন্ডে থাকাকালীন নির্দিষ্ট কাজ করার জন্য Apple এই ফিচারগুলো প্রদান করে, তবে সিস্টেম রিসোর্স এবং ব্যাটারি লাইফ সুরক্ষার জন্য এর ব্যবহার সীমিত এবং নিয়ন্ত্রিত।
Background Modes
Background Modes হল iOS অ্যাপের একটি ফিচার, যা অ্যাপ্লিকেশনকে নির্দিষ্ট কাজ বা সার্ভিস চালু রাখতে ব্যাকগ্রাউন্ডে চলমান থাকতে দেয়। iOS-এ কিছু নির্দিষ্ট কাজ ব্যাকগ্রাউন্ডে চালানোর অনুমতি দেওয়া হয়, এবং এ জন্য অ্যাপ্লিকেশনটিকে Info.plist ফাইলে নির্দিষ্ট Background Modes সক্ষম করতে হয়।
iOS-এ সাধারণ Background Modes
Background Fetch: এটি অ্যাপকে নির্দিষ্ট সময়ে ব্যাকগ্রাউন্ডে ডেটা ফেচ বা আপডেট করতে দেয়। উদাহরণস্বরূপ, নিউজ অ্যাপগুলো নতুন আর্টিকেল ডাউনলোড করতে পারে যাতে ব্যবহারকারী পরবর্তীবার অ্যাপটি খুললে সর্বশেষ তথ্য দেখতে পায়।
Background Processing: iOS 13 এবং তার পরবর্তী সংস্করণে BGAppRefreshTask এবং BGProcessingTask এর মাধ্যমে নির্দিষ্ট কাজ বা প্রসেসিং ব্যাকগ্রাউন্ডে চালানো যায়।
Location Updates: অ্যাপ যদি ব্যাকগ্রাউন্ডে লোকেশন সার্ভিস ব্যবহার করতে চায়, তবে এটি Location Updates সক্ষম করতে পারে। উদাহরণস্বরূপ, একটি ট্র্যাকিং অ্যাপ্লিকেশন ব্যবহারকারীর অবস্থান ট্র্যাক করতে পারে, এমনকি যখন অ্যাপটি ব্যাকগ্রাউন্ডে থাকে।
Audio: অ্যাপ যদি ব্যাকগ্রাউন্ডে অডিও প্লেব্যাক চালাতে চায় (যেমন: মিউজিক বা পডকাস্ট অ্যাপ), তবে এটি Audio মোড সক্ষম করতে পারে।
VoIP: ভয়েস ওভার ইন্টারনেট প্রোটোকল (VoIP) অ্যাপ ব্যাকগ্রাউন্ডে চালানোর জন্য এটি ব্যবহার করা হয়, যেমন কল রিসিভ করার সময়।
Bluetooth Connectivity: ব্যাকগ্রাউন্ডে ব্লুটুথ ডিভাইসের সাথে কানেক্টেড থাকার জন্য এই মোড ব্যবহার করা হয়।
Push Notifications: Remote Push Notifications ব্যবহার করে অ্যাপ ব্যাকগ্রাউন্ডে টাস্ক ট্রিগার করতে পারে, যেমন চ্যাট মেসেজ আপডেট করা।
Background Modes সেটআপ করার ধাপসমূহ
- Info.plist ফাইলে, Required Background Modes কির নাম দিয়ে একটি নতুন এন্ট্রি যোগ করুন।
- আপনি কোন কাজ করতে চান তার উপর নির্ভর করে প্রয়োজনীয় মোডগুলি নির্বাচন করুন:
- App registers for location updates
- App downloads content from the network
- App plays audio or streams audio/video using AirPlay
Background Modes উদাহরণ: Background Fetch ব্যবহার
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Background Fetch সক্ষম করা
application.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum)
return true
}
func application(_ application: UIApplication, performFetchWithCompletionHandler completionHandler: @escaping (UIBackgroundFetchResult) -> Void) {
// ব্যাকগ্রাউন্ডে ডেটা ফেচ করার লজিক
fetchDataFromServer { success in
if success {
completionHandler(.newData)
} else {
completionHandler(.failed)
}
}
}
func fetchDataFromServer(completion: @escaping (Bool) -> Void) {
// API কল বা ডেটা ফেচ লজিক এখানে লিখুন
completion(true)
}
}
- setMinimumBackgroundFetchInterval: অ্যাপের ব্যাকগ্রাউন্ড ফেচ ইন্টারভাল সেট করে।
- performFetchWithCompletionHandler: ব্যাকগ্রাউন্ড ফেচের সময় সিস্টেম এই মেথড কল করে, যেখানে ডেটা ফেচ করার লজিক লেখা হয়।
Background Tasks (iOS 13+)
Background Tasks একটি নতুন API যা iOS 13 এবং এর পরবর্তী সংস্করণে প্রবর্তিত হয়েছে। এটি আরও নির্ভরযোগ্য এবং নিয়ন্ত্রিত পদ্ধতিতে ব্যাকগ্রাউন্ড কাজ ম্যানেজ করার সুযোগ দেয়। BGAppRefreshTask এবং BGProcessingTask এর মাধ্যমে ডেভেলপাররা নির্দিষ্ট কাজ নির্দিষ্ট সময়ে বা নির্দিষ্ট শর্তে ব্যাকগ্রাউন্ডে চালাতে পারেন।
BGAppRefreshTask এবং BGProcessingTask
- BGAppRefreshTask: হালকা কাজ বা ডেটা ফেচিংয়ের জন্য ব্যবহৃত হয় যা দ্রুত সম্পন্ন করা যায় এবং অতিরিক্ত ব্যাটারি ব্যবহার করে না।
- BGProcessingTask: ভারী কাজ বা দীর্ঘ সময়ের জন্য প্রসেসিংয়ের জন্য ব্যবহৃত হয়, যেমন বড় ফাইল ডাউনলোড বা ডেটা প্রসেসিং।
Background Tasks ব্যবহার করার উদাহরণ
Background Modes সক্রিয় করুন এবং Background Processing মোড নির্বাচন করুন।
Info.plist ফাইলে Permitted background task scheduler identifiers যুক্ত করুন, যা টাস্কগুলিকে ইউনিক আইডেন্টিফায়ার দিয়ে চিনতে সাহায্য করবে।
BGAppRefreshTask বা BGProcessingTask সেটআপ করুন:
import BackgroundTasks
func scheduleAppRefresh() {
let request = BGAppRefreshTaskRequest(identifier: "com.example.app.refresh")
request.earliestBeginDate = Date(timeIntervalSinceNow: 15 * 60) // ১৫ মিনিট পরে
do {
try BGTaskScheduler.shared.submit(request)
} catch {
print("Failed to submit BGAppRefreshTask: \(error)")
}
}
// AppDelegate এ বা SceneDelegate এ টাস্ক রেজিস্টার করা
func registerBackgroundTasks() {
BGTaskScheduler.shared.register(forTaskWithIdentifier: "com.example.app.refresh", using: nil) { task in
self.handleAppRefreshTask(task: task as! BGAppRefreshTask)
}
}
func handleAppRefreshTask(task: BGAppRefreshTask) {
// ডেটা ফেচিং বা অন্য কাজ শুরু করা
fetchDataFromServer { success in
task.setTaskCompleted(success: success)
}
// পরবর্তী টাস্ক রেজিস্টার করা
scheduleAppRefresh()
}
- BGAppRefreshTaskRequest: এটি একটি ব্যাকগ্রাউন্ড রিফ্রেশ টাস্ক রিকোয়েস্ট তৈরি করে।
- BGTaskScheduler: এটি ব্যাকগ্রাউন্ড টাস্কগুলোকে স্কেজুল এবং হ্যান্ডেল করে।
- setTaskCompleted: টাস্ক শেষ হলে সিস্টেমকে জানাতে হয় যে টাস্ক সফলভাবে সম্পন্ন হয়েছে।
Background Tasks এবং Background Modes এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Background Modes | Background Tasks |
|---|---|---|
| প্রাপ্যতা | iOS এর পুরোনো সংস্করণেও পাওয়া যায় | iOS 13+ |
| ব্যবহার | নির্দিষ্ট কাজ বা সার্ভিসের জন্য | ডাইনামিক এবং নির্দিষ্ট শর্তের কাজের জন্য |
| কন্ট্রোল | অ্যাপের জন্য বিশেষ করে ফিচার যুক্ত করতে দেয় | কাস্টম এবং নির্দিষ্ট কাজ স্কেজুল করতে দেয় |
Background Tasks ব্যবহারের সেরা পদ্ধতি
- সঠিক Task Identifier ব্যবহার করুন: প্রতিটি টাস্কের জন্য ইউনিক আইডেন্টিফায়ার দিন, যাতে সিস্টেম সহজে টাস্কগুলি ট্র্যাক করতে পারে।
- শুধুমাত্র প্রয়োজনীয় Task ব্যবহার করুন: অপ্রয়োজনীয় টাস্ক বা ব্যাকগ্রাউন্ড প্রসেস এড়িয়ে চলুন, যা সিস্টেমের রিসোর্স এবং ব্যাটারি ক্ষতি করতে পারে।
- Task Expiration Handle করুন: টাস্ক এক্সপায়ার হলে (যেমন: সিস্টেম রিসোর্সের ঘাটতি) কিভাবে হ্যান্ডেল করা হবে তা নিশ্চিত করুন।
- ব্যাটারি সাশ্রয় নিশ্চিত করুন: ব্যাটারির ব্যবহার সীমিত রাখতে এবং অ্যাপের কর্মক্ষমতা সুরক্ষিত রাখতে ছোট এবং দ্রুত সম্পন্ন করা যায় এমন কাজ তৈরি করুন।
উপসংহার
Background Tasks এবং Background Modes iOS অ্যাপ্লিকেশনে ব্যাকগ্রাউন্ড কাজ সঠিকভাবে ম্যানেজ করার শক্তিশালী উপায়। ডেভেলপাররা সঠিকভাবে এই ফিচারগুলো ব্যবহার করে অ্যাপের পারফরম্যান্স এবং ব্যাটারি ব্যবহার সঠিকভাবে অপ্টিমাইজ করতে পারেন, ফলে ব্যবহারকারীর অভিজ্ঞতা আরও ভালো হয়।
Read more